/*
 * @Author: Qun
 * @Date: 2021-08-30 15:14:23
 * @LastEditTime: 2021-08-31 17:55:41
 * @LastEditors: Qun
 */

/**
 * money formatting
 * @method: moneyFormatter
 * @param {Number} number 要格式化的数字
 * @param {Number} decimals 保留几位小数
 * @param {String} thousandsSep 千分位符号
 * @return {String}
 */
export function moneyFormatter(number, decimals, thousandsSep = '') {
  number = (number + '').replace(/[^0-9+-Ee.]/g, '');
  const n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    toFixedFix = function(n, prec) {
      const k = Math.pow(10, prec);
      return '' + Math.ceil(n * k) / k;
    };

  const s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  const re = /(-?\d+)(\d{3})/;
  while (re.test(s[0]) && thousandsSep) {
    s[0] = s[0].replace(re, `$1${thousandsSep}$2`);
  }

  if ((s[1] || '').length < prec) {
    s[1] = s[1] || '';
    s[1] += new Array(prec - s[1].length + 1).join('0');
  }
  return s.join('.');
}

/**
 * date formatting to text
 * @param param 当前时间，new Date() 格式
 * @description param 调用 `formatAxis(new Date())` 输出 `上午好`
 * @returns 返回拼接后的时间字符串
 */
export function formatAxis(param) {
  const hour = new Date(param).getHours();
  if (hour < 6) return '凌晨';
  else if (hour < 9) return '早上';
  else if (hour < 11) return '上午';
  else if (hour < 13) return '中午';
  else if (hour < 17) return '下午';
  else if (hour < 19) return '傍晚';
  else if (hour < 22) return '晚上';
  else return '夜里好';
}
